package ru.dadle8.service.impl.action;

import org.springframework.stereotype.Service;
import org.telegram.telegrambots.meta.api.objects.Update;
import org.telegram.telegrambots.meta.api.objects.User;
import org.telegram.telegrambots.meta.exceptions.TelegramApiException;
import ru.dadle8.model.bot.type.Action;

@Service
public class StartActionServiceImpl extends AbstractActionService {

    @Override
    public String getAction() {
        return Action.START.getAction();
    }

    @Override
    public void processUpdate(Update update) throws TelegramApiException {
        String message;
        if (startBot(update)) {
            message = "Привет, %s!".formatted(update.getMessage().getFrom().getFirstName());
        } else {
            message = "Вы уже активировали бота.";
        }
        getBot().execute(getMessageHelper().sendMessage(getChatId(), message));
    }

    public boolean startBot(Update update) {
        User user = update.getMessage().getFrom();
        if (getUserService().exists(user.getId())) {
            return false;
        }

        getUserService().save(user, getChatId());
        return true;
    }
}
